var audioContext = new AudioContext();
var audioBufferSourceNode;

var util = {

    play(blob) {
     
        var reader = new FileReader();
        reader.readAsArrayBuffer(blob);
        reader.onload = function (e) {
      
            audioContext.decodeAudioData(reader.result, function (buffer) {
                // 创建AudioBufferSourceNode 用于播放解码出来的buffer的节点
                audioBufferSourceNode = audioContext.createBufferSource();
                // 创建AnalyserNode 用于分析音频频谱的节点
                var analyser = audioContext.createAnalyser();
                //fftSize (Fast Fourier Transform) 是快速傅里叶变换，一般情况下是固定值2048。具体作用是什么我也不太清除，但是经过研究，这个值可以决定音频频谱的密集程度。值大了，频谱就松散，值小就密集。
                analyser.fftSize = 256;
                // 连接节点,audioContext.destination是音频要最终输出的目标，
                // 我们可以把它理解为声卡。所以所有节点中的最后一个节点应该再
                // 连接到audioContext.destination才能听到声音。
                audioBufferSourceNode.connect(analyser);
                analyser.connect(audioContext.destination);
                console.log(audioContext.destination);
                // 播放音频
                audioBufferSourceNode.buffer = buffer; //回调函数传入的参数
                audioBufferSourceNode.start(); //部分浏览器是noteOn()函数，用法相同
            });

        };

    },
    stop() {
        audioBufferSourceNode.stop();
    },


}

module.exports = util;